<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        // 函数式 ：声明式编程   fp
        // 命令式：过程式 
        // 循环
        // some  every forEach map .... 声明式编程 
        // 声明式：注重编程的结果，“做什么” , 纯函数    命令式 编程的过程  ，“如何做”
        // 纯函数：没有副作用的函数，给定输入，会有固定的输出
        // var a = 10;
        // function add(b){
        //     return a + b;
        // }
        // console.log(add(2));


        // 打印 数组里的内容
        // let arr = ["张三", "李四", "王五"];
        // for(let i =0;i<arr.length;i++){
        //     console.log(arr[i]);
        // }
        // arr.forEach(item=>{
        //     console.log(item);
        // })

        // function myForEach(arr,fn) {
        //     for (let i = 0; i < arr.length; i++) {
        //         // console.log(arr[i]);
        //         fn(arr[i],i,arr);
        //     }
        // }
        // Array.prototype.myForEach = function(fn) {
        //     for (let i = 0; i < this.length; i++) {
        //         // console.log(arr[i]);
        //         fn(this[i],i,this);
        //     }
        // }
        // // myForEach(arr,function(item){
        // //     console.log(item);
        // // })
        // arr.myForEach(item=>{
        //     console.log(item);
        // })

        let arr = [
            {
                name:"111",
                age:20,
                gerder:"男"
            },
            {
                name:"111",
                age:24,
                gerder:"女"
            },{
                name:"111",
                age:21,
                gerder:"男"
            },
            {
                name:"111",
                age:25,
                gerder:"男"
            },
            {
                name:"111",
                age:26,
                gerder:"男"
            }
        ]

     let res = arr.filter(item=>item.gerder=="男").filter(item=>item.age>25).map(item=>item);  // pipe : 管道
     console.log(res);
    //  js 多范式 ：面向过程 面向对象 函数式编程 


    </script>
</body>

</html>